package van.planifolia.function;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;

/**
 * Created by Intellij IDEA<br>
 *
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/11/3 17:52
 */
public class Function2 {
    public static void main(String[] args) {
        List<String> strings = new ArrayList<>();
        strings.add("你好世界");
        strings.add("哈哈");
        strings.add("呵呵");
        strings.add("1111");
        // 调用test方法的同时 使用lambda实现生产者函数式接口，然后我们要模拟Stream流中的foreach方法不仅打印出元素还要打印出下标
        test(items->{
            for (int i = 1; i <= items.size(); i++) {
                System.out.println("下标为 "+i+" 的List元素为->"+items.get(i-1));
            }
        },strings);
    }
    /**
     * 编写一个测试方法来模拟jdk中的一些需要使用函数式接口的方法
     * @param consumer 消费者函数式接口的实现类
     * @param list 要被消费的数组
     */
    public static void test(Consumer<? super List<String>> consumer, List<String> list){
        consumer.accept(list);
    }

}
